부록 C. 더 공부할 자료
이 책은 시작점이다. 여기서 익힌 기초 위에 무엇을 더 쌓을지가 앞으로 더 중요하다.
이 부록은 다음 단계로 향하는 지도다. 공식 문서, 도구, 학습 경로, 커뮤니티를 정리했다.
C.1 공식 자료
가장 신뢰할 수 있는 자료는 공식 자료다. 최신 정보가 가장 빠르고, 정확하다.
핵심 사이트
| 자료 | 주소 | 무엇이 있나 |
|---|---|---|
| Go 공식 홈 | https://go.dev/ | 다운로드, 블로그, 문서 진입점 |
| A Tour of Go | https://go.dev/tour/welcome/1 | 브라우저에서 바로 실행되는 입문 튜토리얼 |
| Effective Go | https://go.dev/doc/effective_go | “Go 답게” 쓰는 법을 정리한 공식 문서 |
| pkg.go.dev | https://pkg.go.dev/ | 표준 라이브러리 / 외부 패키지 문서 포털 |
| Go Playground | https://go.dev/play/ | 브라우저에서 코드 실행 / 공유 |
책에서 다 못 다룬 주제 위주로 보기 좋은 글
- https://go.dev/blog/ — 공식 블로그. 새 기능이나 깊은 주제 글이 종종 올라온다
- https://go.dev/doc/faq — 자주 묻는 질문
- https://go.dev/ref/spec — 언어 명세 (한 번쯤 훑어 두면 미묘한 동작이 이해된다)
Tour of Go 는 가볍게 한 번 더 돌면서 “내가 이 책에서 본 게 여기서는 이렇게 쓰여 있구나” 를 다시 익히기에도 좋다.
C.2 한국어 자료
한국어로 된 Go 자료도 점점 늘고 있다. 사람마다 취향이 달라 특정 책 / 블로그를 콕 찍기보다 탐색 방향을 적는다.
어떻게 찾는가
- “Go 한국어” 또는 “Golang 한국어” 검색
- “Go 언어 + 주제 키워드” 로 좁히기 (예: “Go 언어 동시성 패턴”)
- 발행 시점을 꼭 본다 — 5년 이상 된 글은 문법은 같아도 생태계 정보가 낡았을 수 있다
블로그 / 미디엄 / velog / tistory
기술 블로그 글을 찾아 읽는 습관은 큰 도움이 된다. 같은 주제를 여러 사람이 어떻게 설명하는지 비교해 보면 이해가 깊어진다.
- 회사 기술 블로그 (당근, 카카오, 우아한형제들 등)
- 개인 블로그 (Medium, velog, tistory)
- 한국어 Go 미트업 / 발표 자료
한국어 자료를 볼 때 한 가지 주의점
오래된 자료에는 다음 같은 옛 흔적이 남아 있을 수 있다.
GOPATH위주 설명 → 지금은 모듈 방식이 표준 (20장)dep,glide같은 옛 패키지 관리자 → 지금은 모듈- 1.18 이전이라 제네릭이 없는 코드 (17장)
모를 땐 공식 문서로 한 번 더 확인하는 습관이 좋다.
C.3 추천 도구
golangci-lint
여러 린터를 한 번에 묶어 돌려 주는 도구. 실무에서는 거의 표준이다.
- 홈: https://golangci-lint.run/
- 설치 후 프로젝트 루트에서:
golangci-lint run
.golangci.yml 로 규칙을 켜고 끌 수 있다.
GitHub Actions / GitLab CI 와 잘 어울린다.
air — 라이브 리로드
코드 변경을 감지해 자동으로 재빌드 / 재실행해 준다. 웹 서버 개발 시 손이 편해진다.
- 홈: https://github.com/cosmtrek/air
go install github.com/cosmtrek/air@latest
air
delve — 디버거
브레이크포인트, 변수 검사, 스텝 실행을 지원하는 Go 의 공식 디버거다. VS Code Go 확장이 내부적으로 쓴다.
- 홈: https://github.com/go-delve/delve
go install github.com/go-delve/delve/cmd/dlv@latest
dlv debug
VS Code 의 디버그 패널 (F5) 만 눌러도 그대로 붙는다.
그 외 알아 두면 좋은 도구
| 도구 | 용도 |
|---|---|
goimports | 임포트 정렬 + 자동 추가/제거 |
gotests | 함수에서 테스트 스켈레톤 자동 생성 |
mockgen | 인터페이스의 목 객체 생성 |
staticcheck | 강력한 정적 분석기 (golangci-lint 가 포함) |
gops | 실행 중인 Go 프로세스 진단 |
처음부터 다 깔 필요는 없다. 자주 부딪히는 문제에 맞는 도구를 하나씩 들이면 된다.
C.4 추천 학습 경로
여기까지 왔다면 다음 단계는 사람마다 다르지만, 일반적으로 추천할 수 있는 경로는 이렇다.
1단계 — 기초 다지기 (지금 위치)
- 이 책을 한 번 더 훑으며 어색한 챕터를 두 번 본다
- A Tour of Go 를 처음부터 끝까지 한 번 더 돈다
- Effective Go 를 천천히 읽는다
2단계 — 작은 프로젝트로 손에 익히기
자신만의 작은 도구를 하나 만든다.
- 명령줄 도구 (예: 일정 알림, 파일 정리)
- 간단한 웹 API
- 봇 (Slack, Discord, Telegram 등)
만들고 싶은 게 있을 때 진짜 학습이 일어난다. 33장에서 만든 두 프로젝트를 확장하는 것도 훌륭한 출발점이다.
3단계 — 표준 라이브러리 깊이 파기
문서를 차분히 읽어 두면 평생 도움이 된다.
| 패키지 | 무엇을 배우나 |
|---|---|
io, bufio | 스트림 처리 사고방식 |
context | 취소, 타임아웃, 요청 추적 |
net/http | 서버 / 클라이언트 모두 |
encoding/json | 데이터 변환 |
database/sql | 표준 DB 접근 인터페이스 |
sync, sync/atomic | 동시성 도구 |
log/slog | 구조화 로깅 |
testing | 표준 테스트 도구의 잘 안 알려진 기능 |
4단계 — 인기 오픈소스 코드 읽기
좋은 코드를 읽는 것이 좋은 코드를 쓰는 가장 빠른 길이다.
| 프로젝트 | 무엇을 배울 수 있나 |
|---|---|
| Kubernetes | 거대한 모듈 분리, 인터페이스 설계, 동시성 |
| Docker / Moby | 시스템 프로그래밍, 패키지 구성 |
| Prometheus | 라이브러리 설계, 메트릭, HTTP 라우팅 |
| Caddy | 우아한 웹 서버 설계 |
| etcd | 분산 시스템, Raft 알고리즘 |
| Hugo | CLI 도구, 파일 처리 |
처음부터 전체를 읽으려 하지 말고 관심 있는 한 파일, 한 함수부터 본다.
5단계 — 깊이 있는 주제
언어를 넘어서는 영역.
- 분산 시스템 / 마이크로서비스
- 컨테이너 / 쿠버네티스
- 관측성 (메트릭, 로그, 트레이스)
- 성능 튜닝과 프로파일링
C.5 커뮤니티
혼자만 공부하면 막히는 지점에서 오래 머무른다. 사람을 만나라.
한국어 커뮤니티
- GoLang Korea — 페이스북 그룹, 슬랙, 미트업
- 한국 Go 사용자 모임의 발표 영상 (YouTube 검색)
- 회사별 Go 사용 후기 / 도입기 글
영문 커뮤니티
- r/golang — Reddit (https://reddit.com/r/golang/)
- Gophers Slack — https://invite.slack.golangbridge.org/
- GitHub Discussions — 인기 오픈소스의 토론 페이지
- Stack Overflow — 질문 검색 시 답변 품질이 높다
- GopherCon 발표 (YouTube)
- 매년 진행되는 콘퍼런스. 깊은 주제 발표가 많다
Slack / Discord 에 일단 가입만 해 두고 다른 사람들의 질문과 답을 곁눈질로 보는 것만으로도 배운다.
C.6 마지막으로
여기까지 따라온 자신을 칭찬해 주자. 프로그래밍은 책을 덮는다고 끝나지 않는다. “실제로 무언가를 만들기 시작할 때” 가 진짜 시작이다.
작은 프로그램을 하나 짜고, 그게 동작하는 걸 보고, 다음 번에 조금 더 큰 걸 만든다. 이 반복이 쌓이면 어느 순간 “내가 Go 로 일을 한다” 가 자연스러워진다.
기억해 둘 다섯 가지.
- 가장 좋은 자료는 공식 문서다
- 막히면 누군가에게 물어봐도 된다
- 다른 사람의 코드를 자주 읽자
- 작은 것부터 끝까지 완성해 보자
- 즐기는 게 가장 오래 가는 학습이다
좋은 코드와 즐거운 개발 인생을 빈다. 이제 키보드 앞으로 돌아갈 시간이다.